Flash memory is replacing hard disks and optical disks as the preferred mass-storage medium. Host systems such as Personal Computers (PC's) store large amounts of data in mass-storage devices such as hard disk drives (HDD). Mass-storage devices are sector-addressable rather than byte-addressable, since the smallest unit of flash memory that can be read or written is a page that is several 512-byte sectors in size.
NAND flash memory is a type of flash memory constructed from electrically-erasable programmable read-only memory (EEPROM) cells, which have floating gate transistors. These cells use quantum-mechanical tunnel injection for writing and tunnel release for erasing. NAND flash is non-volatile so it is ideal for portable devices storing data. NAND flash tends to be denser and less expensive than NOR flash memory.
One limitation of NAND flash is that when storing data (writing to flash), the flash can only write from ones (1) to zeros (0). When writing from zeros (0) to ones (1), the flash needs to be erased a “block” at a time. Although the smallest unit for read can be a byte or a word within a page, the smallest unit for erase is a block.
Another limitation is that NAND flash memory has a finite number of erase cycles between 10,000 and 100,000, after which the flash wears out and becomes unreliable.
A consumer may desire a large capacity flash-memory system, perhaps as a replacement for a hard disk or for storing data for a smart phone. A solid-state disk (SSD) made from flash-memory chips has no moving parts and is thus more reliable than a rotating disk.
Several smaller flash drives could be connected together, such as by plugging many flash drives into a USB hub that is connected to one USB port on a host, but then these flash drives appear as separate drives to the host. For example, the host's operating system may assign each flash drive its own drive letter (D:, E:, F:, etc.) rather than aggregate them together as one logical drive, with one drive letter.
Larger flash systems may use multiple channels to allow parallel access, improving performance. A wear-leveling algorithm allows the memory controller to remap logical addresses to any different physical addresses so that data writes can be evenly distributed. Thus the wear-leveling algorithm extends the endurance of the flash memory.
Multi-channel flash systems may have several channels that data is striped across. As the flash memory system wears, more bad blocks appear, reducing the available storage capacity. Since these bad blocks may appear at random locations, the channels may diverge in capacity over time. When channels have widely differing available capacities, much space is wasted in the larger channels.
Plug-n-Play USB or other flash devices are desirable that can be booted from an OS image stored in the flash memory. It is sometimes desirable to support multiple operating systems (OS's). A single flash drive that can store multiple OS images is more desirable than current USB drives that can only boot one OS. Mapping multiple OS images across channels and devices is problematic. Data may be encrypted and password-protected for security. Passwords or keys that are stored on the flash drive are desirable. There may be different levels of access or enablement for different levels of users.
What is desired is a multi-channel flash system that supports security. A mapping structure is desirable to map logical addresses to physical blocks in the flash memory. Wear-leveling and bad block management is desirable. Support for multiple operating system images is also desired. Redundant Array of Individual Disks (RAID) striping is desirable. A multi-level smart flash drive is desirable that can support these features.